package JackSu.多线程;

public class _04懒汉模式 {

}


class Bank {
    private Bank() {

    }

    private static volatile Bank instance = null;
//方法一懒汉模式 保证只有一个对象 用锁来解决这个对象的共享安全问题 但效率稍差
//    private  static synchronized  Bank getInstance(){
//        if (instance==null){
//            instance=new Bank();
//        }
//        return instance;
//
//    }

    //方法二  当一开始的几个进程竞争完锁之后，后面在进来的进程就不需要再竞争锁了

    public static Bank getInstance() {
        if (null == instance) {
            synchronized (Bank.class) {
                if (instance == null) {
                    instance = new Bank();
                }
                return instance;

            }

        }
        return instance;
    }
}
